Linux tail 命令与日志查找应用场景技巧(转载) 您所在的位置:网站首页 linux 动态查看文件内容 Linux tail 命令与日志查找应用场景技巧(转载)

Linux tail 命令与日志查找应用场景技巧(转载)

2023-07-26 11:17| 来源: 网络整理| 查看: 265

前言 tail是Linux中的一个常用命令,用于查看文件尾部的内容,它与head命令相对应。我们常用它来查看日志文件,通过-f参数可实时看文件的最新内容。

tail命令格式与参数 格式

tail [选项…] [文件…] tail [-F | -f ] [-q] [-c # | -n #] [file …] 1 2 注:其中 # 代表数字的意思。

参数解释

参数 解释 -f --follow[={name|descriptor}], 跟踪文件的增长,并实时输出所增长的数据;缺省选项参数可以是’文件名’或’描述符’ -n --lines=K, 输出最后 K 行,也可以使用 -n +K指定从第K行开始输出 -c --bytes=K, 输出最后 K 个字节;也可以使用 -c +K 指定从第K字节开始输出 -q --quiet, 不输出所提供文件的标头 注: 指定 K 时(字节数或行数)如果以+开头,则表示从第 K 行或字节处开始打印;否则,打印文件中的最后 K 项。K 还可以计量单位和乘数后缀的形式指定,如:b 512, kB 1000, K 1024, MB 10001000, M 10241024,GB 100010001000, G 102410241024,以及 T, P, E, Z, Y 等

tail 命令使用场景与日志查找技巧 场景1: 实时查看与关键字的相关的日志 通过-f参数,并配合grep命令,可以实现对文件内容的实时过滤。如:查看前几行、后几行、或前后几行,这时可以通过以下几个参数实现:

-A 除了显示符合匹配内容的那一行之外,并显示该行之后的内容 -B 在显示符合匹配内容的那一行之外,并显示该行之前的内容 -C 或- 除了显示符合匹配内容的那一列之外,并显示该列之前后的内容 1 2 3 粟子: 监控info.log日志件,并查看含有迁移关键字的前后5行:

$ tail -f info.log|grep ‘迁移’ -C 5 // 或 $ tail -f info.log|grep ‘迁移’ -5 1 2 3 场景2:实时查看日志 通过-f参数,我们可以实时查看文件的新增内容:

$ tail -f info.log 1 注意:使用-f参数时不会中断文件监视,需要通过ctrl+c手动结束。

场景3:按位置查看文件内容 (1) 查看文件最后30行

$ tail -n -30 info.log // 或 $ tail -n 30 info.log // 或 $ tail -30 info.log 1 2 3 4 5 (2) 查看第30行至文件末尾:

$ tail -n +30 info.log // 或 $ tail +30 info.log 1 2 3 (3) 查询日志文件除了最后30行的其他所有日志

head -n -30 info.log 1 (4) 配合head命令,实现查看文件的第10到20行:

$ head -20 info.log | tail -10 1 场景4:查找关键字附近的日志 首先,获取关键字的行号 #-n 显示行号 cat -n info.log |grep “关键字” 1 2

查找指定行号63829附近的日志 cat -n test.log |tail -n +63820|head -n 20 tail -n +63820表示查询63820行之后的日志 head -n 20 则表示在前面的查询结果里再查前20条记录 1 2 3 场景5:查找所有某种文件里符合条件的字符串 粟子: 在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行

grep test *file 1 结果如下所示:

$ grep test test* #查找前缀有“test”的文件包含“test”字符串的文件 testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行 testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行 testfile_2:Linux test #列出testfile_2 文件中包含test字符的行 1 2 3 4 grep 命令同样可以加上 -A 或-B 或-C 的选项 -A是显示匹配后和它后面的n行。 -B是显示匹配行和它前面的n行。 -C是匹配行和它前后各n行。(Context, 上下文)

粟子:搜索info.log文件,找到匹配"@迁移"字串的行,显示该行后后面紧跟的4行。

grep -A 4 “@迁移” info.log 1 场景6:将查找的日志内容分页查看,或输出到一个文件中 (1) 分页查看 如果我们查找的日志很多,打印在屏幕上不方便查看, 使用more和less命令, 如: cat -n info.log |grep “迁移记录” |more 这样就分页打印了,通过点击空格键翻页 (2) 保存到文件中 使用 >xxx.txt将其保存到文件中,到时可以拉下这个文件分析.如:

cat -n info.log |grep “迁移记录” >xxx.txt 1 场景7:根据时间查找日志 可以先 grep ‘2020-06-17 16:17:20’ info.log 来确定日志中是否有该时间点,以确保下面第4步可以拿到日志。这个根据时间段查询日志是非常有用的命令。

#查找2020-07-03 21:21 ~ 2020-07-03 21:22内的日志 sed -n ‘/2020-07-03 21:21/,/2020-07-03 21:22/p’ info.log #查找2020-07-03 21:21:34 ~ 2020-07-03 21:21:39内的所有日志 sed -n ‘/2020-07-03 21:21:34/,/2020-07-03 21:21:39/p’ info.log

原文链接:https://blog.csdn.net/CPOHUI/article/details/107740294?utm_medium=distribute.pc_feed.none-task-blog-personrec_tag-14.nonecase&depth_1-utm_source=distribute.pc_feed.none-task-blog-personrec_tag-14.nonecase&request_id=5f29c97d8c9fb674c6722b34



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有